#ifndef RESOURCEMONITORINFO_H
#define RESOURCEMONITORINFO_H

#include <QObject>
#include <cpuinfo.h>
#include <cpuuse.h>
#include <diskinfo.h>
#include <diskuse.h>
#include <memoryinfo.h>
#include <memoryuse.h>
#include <serverinfo.h>

class ResourceMonitorInfo : public QObject
{
    Q_OBJECT
public:
    explicit ResourceMonitorInfo(QObject *parent = nullptr);

    QJsonObject toJsonObject() const;

    QList<CpuInfo> getCpuInfos() const;
    void setCpuInfos(const QList<CpuInfo> &newCpuInfos);
    QList<CpuUse> getCpuUses() const;
    void setCpuUses(const QList<CpuUse> &newCpuUses);
    QList<MemoryInfo> getMemoryInfos() const;
    void setMemoryInfos(const QList<MemoryInfo> &newMemoryInfos);
    QList<MemoryUse> getMemoryUses() const;
    void setMemoryUses(const QList<MemoryUse> &newMemoryUses);
    QList<DiskInfo> getDiskInfos() const;
    void setDiskInfos(const QList<DiskInfo> &newDiskInfos);
    QList<DiskUse> getDiskUses() const;
    void setDiskUses(const QList<DiskUse> &newDiskUses);
    ServerInfo getServerInfo() const;
    void setServerInfo(const ServerInfo &newServerInfo);

private:
    QList<CpuInfo> cpuInfos;
    QList<CpuUse> cpuUses;
    QList<MemoryInfo> memoryInfos;
    QList<MemoryUse> memoryUses;
    QList<DiskInfo> diskInfos;
    QList<DiskUse> diskUses;
    ServerInfo serverInfo;
};

#endif // RESOURCEMONITORINFO_H
